import md5 from 'js-md5';
import 	$toast from '@/utils/toast';
/**
 * 验证手机号
 *
 * @param  string   mobile   手机号
 * @return boolean
 */
 export function validateMobile(mobile)
 {
 	return /^(1[3-9][0-9])\d{8}$/ig.test(mobile);
 }

/**
 * 验证身份证号
 *
 * @param  string   identity   身份证号
 * @return boolean
 */
 export function validateIdentity(identity)
 {
 	return  /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/.test(identity)
 }


/**
 * rem适配屏幕尺寸
 */
 export function windowResize()
 {
 	(function (doc, win) {
 		var docEl = doc.documentElement,
 		resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
 		recalc = function () {
 			var clientWidth = docEl.clientWidth;
 			if (!clientWidth) return;
 			docEl.style.fontSize = 12 * (clientWidth / 320) + 'px';
 		};

 		if (!doc.addEventListener) return;
 		win.addEventListener(resizeEvt, recalc, false);
 		doc.addEventListener('DOMContentLoaded', recalc, false);
 	})(document, window);
 }


/**
 * 时间格式化
 * @param  {[type]} date 需要转换的时间
 * @param  {[type]} fmt  转换后的时间格式   如'yyyy-MM-dd'
 * @return Promise
 */
 export function formatDate (date, fmt) {
 	if (/(y+)/.test(fmt)) {
 		fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
 	}
 	let o = {
 		'M+': date.getMonth() + 1,
 		'd+': date.getDate(),
 		'h+': date.getHours(),
 		'm+': date.getMinutes(),
 		's+': date.getSeconds()
 	};
 	for (let k in o) {
 		if (new RegExp(`(${k})`).test(fmt)) {
 			let str = o[k] + '';
 			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
 		}
 	}
 	return fmt;
 };
 function padLeftZero (str) {
 	return ('00' + str).substr(str.length);
 };


/**
 * 上传图片
 * @param  {[type]}   id       上传图片ID
 * @param  {Function} callback 回调函数
 * @return Promise
 */
 export function uploadAvatar (id, callback) {
 	const file = document.getElementById(id).files[0];
 	let reader = new FileReader();
 	let imgUrlBase64;
 	if (file) {
	   //将文件以Data URL形式读入页面
	    imgUrlBase64 = reader.readAsDataURL(file);
	    console.log(imgUrlBase64);
	    reader.onload =  e => {
	    	//截取base64码部分
	    	let img_file = reader.result.substring(reader.result.indexOf(",") + 1).length;
	    	if (reader.result.length <= 0) {    
	    		return false;
	    	} else {
	        	//这里调接口，把reader.result传过去
	        	callback(reader.result); 
	        	return $toast('上传成功')
	        }
	    }
	}
};



/**
 * h5调用app方法
 * @param  {[type]} jsname    定义方法名
 * @param  {[type]} parameter 参数
 * @param  {[type]} name      app定义方法名
 * @return Promise
 */
 export function iosapp(jsname,parameter,name)
 {
 	if (window.__wxjs_environment === 'miniprogram'){

 	}
 	else
 	{
 		setupWebViewJavascriptBridge(function(bridge) {
			//js调用app方法 
			bridge.callHandler(jsname, parameter, function(response) {
				console.log(response);
			})
		})
 	}
 }


/**
 * 随机生成字符串
 * @param  {[type]} randomFlag 是否任意长度
 * @param  {[type]} min        意长度最小位
 * @param  {[type]} max        任意长度最大位
 * @return Promise
 */
 export function randomWord(randomFlag, min, max)
 {
 	var str = "",
 	pos = "",
 	range = min,
 	arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];

    // 随机产生
    if(randomFlag){
    	range = Math.round(Math.random() * (max-min)) + min;
    }
    for(var i=0; i<range; i++){
    	pos = Math.round(Math.random() * (arr.length-1));
    	str += arr[pos];
    }
    return str;
}

/**
 * 极光即时通讯初始化
 * @return Promise
 */
 export function initJIM()
{
 	let random_str  = randomWord(true,20,36)
 	JIM.init({
 		"appkey" : "b74bd9684c162ace95d3e6b1",
 		"random_str":  random_str,
 		"signature" : md5('appkey=b74bd9684c162ace95d3e6b1&timestamp=' + Date.parse(new Date()).toString() + '&random_str=' + random_str + '&key=2d3ec6bd6259dd5c356a987e'),
 		"timestamp" : Date.parse(new Date()).toString(),
 		"flag": 1
 	}).onSuccess(res => {
		loginJIM('13725713996','jiguang520')
	}).onFail(function(res) {
	    // 同上
		// console.log(a)
		console.log(res)
	});
}


/**
 * 极光登录
 * @param  {[type]} username 用户名
 * @param  {[type]} password 密码
 * @param  {[type]} appkey   appkey
 * @return {[type]} Promise
 */
export function loginJIM(username,password,appkey) {
	JIM.login({
		'username' : username,
		'password': password
	}).onSuccess(res => {
		window.sessionStorage.setItem('username',res.username)
		JIM.onMsgReceive(res => {
			console.log(res)
		})
	}).onFail(function(res) {
		console.log('error:' + JSON.stringify(res));
	}).onTimeout(function(res) {
		console.log('timeout:' + JSON.stringify(res));
	});
}
